#ifndef GAMUTMAPPINGSYSTEM_H
#define GAMUTMAPPINGSYSTEM_H

#include <QtWidgets/QMainWindow>

#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenu>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QWidget>
#include <QFileDialog>
#include <QMessageBox>
#include <QString>
#include <QImage>

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

#include "uigamutmappingsystem.h"
//#include "uisourcegamutdailog.h"
#include "sourcegamutd.h"
#include "targetgamut.h"
//#include "ui_gamutmappingsystem.h"
#include "equation.h"
#include "iccPro.h"

class GamutMappingSystem : public QMainWindow
{
	Q_OBJECT

public:
	bool imagePathFlag;
	QString imagePath;

public:
	GamutMappingSystem(QWidget *parent = 0);

	QImage Mat2QImage(const cv::Mat &mat);
	void display(QImage image);

	~GamutMappingSystem();



public slots:
	void fileSelect();
	void fileSave();;
	void fileSaves();
	void displaySourceGamut();
	void displayTargetGamut();
	void displayEquation();
	void GamutMapping();
	void readICC();
	void showICC();

	void about();

private:
	//Ui::GamutMappingSystemClass ui;
	//Ui::sourceGamutDialog sGamut;
	UiGamutMappingSystemClass ui;
	cv::Mat image;
	cv::Mat originalimg; //store the original img
	QImage qimg;
	QImage imgScaled;
	cv::Mat rgb;


};

#endif // GAMUTMAPPINGSYSTEM_H
